<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			var arr = [1, 2, 3, 4, 5, 6];
			
			// 第一种方法用splic重写数组原型上的unshift方法
			Array.prototype.myUnshift = function(){
					// 第一种
					// for (var i = arguments.length-1; i >= 0; i--){
					// 	this.splice(0, 0, arguments[i]);
					// }
					
					// 第二种
					var pos = 0;
					for (var i = 0; i < arguments.length; i++){
						this.splice(pos, 0, arguments[i]);
						pos++;
					}
				return this.length;
			}
			
			// 第二种方法用concat在前面添加
			Array.prototype.myUnshift2 = function(){
				// 把实参类数组转换成真正的数组
				var argArr = Array.prototype.slice.call(arguments);
				var newArr = argArr.concat(this);
				return newArr;
			}
			
			var newArr = arr.myUnshift2('a','b','c','d',{name: '张三'});
			
			console.log(arr.myUnshift('a','b','c','d',{name: '张三'}));
			// console.log(arr.unshift('a','b','c','d',{name: '张三'}));
			console.log(arr);
			console.log(newArr);
		</script>
	</body>
</html>
